package com.nuorui.module.system.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nuorui.common.core.domain.ResponseDTO;
import com.nuorui.module.system.domain.form.UserForm;
import com.nuorui.module.system.domain.entity.UserEntity;
import com.nuorui.module.system.domain.query.UserQueryForm;
import java.util.List;

/**
 * @author Fred
 */
public interface UserService extends IService<UserEntity> {

    /**
     * 分页
     *
     * @param page
     * @param queryForm
     * @return
     */
    ResponseDTO getUsersPage(Page page, UserQueryForm queryForm);

    /**
     * 根据部门ID获取用户列表
     *
     * @param departmentId
     * @return
     */
    ResponseDTO getUsersByDepartmentId(Long departmentId);

    /**
     * 新增用户
     *
     * @param userForm
     * @return
     */
    ResponseDTO saveUser(UserForm userForm);

    /**
     * 更新用户
     *
     * @param userId
     * @param userForm
     * @return
     */
    ResponseDTO updateUser(Long userId, UserForm userForm);

    /**
     * 更新禁用/启用状态
     *
     * @param userId
     * @return
     */
    ResponseDTO updateDisable(Long userId);

    /**
     * 重置密码
     *
     * @param userId
     * @return
     */
    ResponseDTO resetPassword(Long userId);

    /**
     * 批量删除
     *
     * @param userIdList
     * @return
     */
    ResponseDTO batchDelete(List<Long> userIdList);
}
